#ifndef OP_H
#define OP_H

#include "Output.h"
#include "proto/internal.pb.h"

class Op {
protected:
	Output output;

public:
	virtual ~Op() {}

	const Output& getOutput() {
		return output;
	}

	// zwraca liczbe wierszy lub -1 jezeli juz koniec
	virtual int doit() = 0;
};

Op* createOp(const internal::Operation& operation);
Op* createTaskOp(const internal::Task& operation);

#endif
